Top
Photo by Luis Villasmil on Unsplash

Praca z zadaniami zatwierdzania w Dataverse


Ten post jest inspirowany niedawnymi prelekcjami, które miałem okazję wygłosić. Opiszę w nim szczegółowo, jak zorganizowane są zadania w Microsoft Dataverse i co możemy z nimi zrobić.

Podstawy

Zadania zatwierdzania Power Automate i Microsoft Teams są przechowywane w Microsoft Dataverse. Baza danych związana jest ze środowiskiem, w którym tworzone jest zadanie.

Dobrze wiedzieć! Zadania są zawsze przechowywane w środowisku Microsoft Dataverse, w którym są tworzone. Dlatego na dzień dzisiejszy nie ma dostępnego „jednego miejsca, w którym można zarządzać wszystkimi zadaniami”.

Dataverse tables structure for approvals
  • Flow approval – przechowuje podstawowe informacje o każdym zatwierdzeniu, np. kiedy zostało utworzone i przez kogo. Ponadto w przypadku, gdy zostało utworzone przez akcję, która również czeka na zatwierdzenie, przechowuje Flow Notification URI, który służy następnie do zakończenia oczekiwania akcji,
  • User – w Dataverse wszystkie obiekty użytkowników są przechowywane w tej tabeli, jest ona synchronizowana z listą użytkowników, którzy mają dostęp do środowiska, która z kolei jest synchronizowana z Azure AD,
  • Approval – nagłówek każdego z zadań. Przechowuje nazwę zadania, żądającego, szczegóły zatwierdzenia,
  • Approval request – przechowuje informacje o każdym pojedynczym zadaniu wygenerowanym do zatwierdzenia (im więcej przypisanych zatwierdzających, tym więcej zadań),
  • Approval response – przechowuje informacje o każdym zakończonym zadaniu, m. in. wynik zatwierdzania.

Teraz znamy już podstawy. Za każdym razem, gdy zadanie jest tworzone w Power Automate lub Microsoft Teams, proces tworzy wpisy w tabelach Flow Approval, Approval i Approval Request. Dalej znajdziesz informacje, co właściwie jest tworzone w każdym z możliwych scenariuszy pracy z zadaniami.

Tworzenie zadania

Z każdym nowym zadaniem tworzone są dane w 3 tabelach:

  1. Approval
    1. Approval – autogenerowane ID
    2. Allow Reassign – boolean
    3. Approval Model Id i Approval Stage – taka sama wartość jak Approval
    4. Created By – kto stworzył zadanie
    5. Created On – timestamp
    6. Details – szczegóły zadania w notacji markdown
    7. Modified By – domyślnie user, który stworzył zadanie
    8. Modified On – taka sama data, jak stworzenia
    9. Owner – znów, user który stworzył zadanie
    10. Send Email Notifications – boolean
    11. Stage – Basic
    12. Status – Active
    13. Status Reason – Pending
    14. Title – tytuł zadania
  2. Flow approval
    1. Flow Approval – identyfikator wygenerowany dla Approval, w tabeli Approval
    2. Created By – Microsoft Flow
    3. Created On – timestamp
    4. Flow Id – guid flow id, używany wewnętrznie
    5. Flow Name – guid procesu, gdzie task został stworzony
    6. Flow Notification URI – URL, który wywołany (POST) kończy czekającą akcję
    7. Flow Run Sequence Id – ID instancji procesu, która utworzyła zadanie
    8. Modified By – to samo co Created By
    9. Modified On – to samo co Created On
    10. Owner – kto utworzył zadanie
    11. Send Flow Email Notification – boolean
    12. Send Flow Push Notification – boolean
    13. Status – Active
    14. Status Reason – Created lub WaitingForApproval (jeśli akcja czeka na zakończenie)
  3. Approval Request
    1. Approval Request – autogenerowane id
    2. Allow Reassignment – boolean
    3. Approval Id Index – identyfikator Approval, wygenerowany w tabeli Approval
    4. Approval Stage – jak powyżej
    5. Created By – kto utworzył zadanie
    6. Created On – timestamp
    7. Last Notified On – jeśli notyfikacja o zadaniu została wysłana – kiedy
    8. Modified By – ta sama wartość co Created By
    9. Modified On – ta sama wartość co Created On
    10. Owner – kto utworzył zadanie
    11. Response options – lista z możliwymi wynikami zadania
    12. Stage – Basic
    13. Stage Index – Basic
    14. Status – Active
    15. Status Reason – Active

Wiele pól do ustawienia, ale większość z nich jest aktualizowana automatycznie na podstawie połączenia używanego do tworzenia rekordów w Dataverse (w akcji Assign Task).

Wskazówka! W tabeli Flow Approval dla zatwierdzeń wygenerowanych z akcjami, które czekają na zakończenie, możesz znaleźć linki w kolumnie Flow Notification URI. Adres URL jest zbudowany z następujących składowych (większość z nich pochodzi z innych kolumn tabeli Flow Approval):
https://[instancja].westeurope.logic.azure.com/workflows/[Flow Id]/runs/[Flow Run Sequence Id]/actions/[Nazwa akcji czekającej na zakończenie]/run?api-version=2016-06-01&sp=%2Fruns%2F[Flow Run Sequence Id]%2Factions%2F[Nazwa akcji czekającej na zakończenie]%2Frun%2C%2Fruns%2F[Flow Run Sequence Id]%2Factions%2F[Nazwa akcji czekającej na zakończenie]%2Fread&sv=1.0&sig=[klucz podpisujący żądanie]
Co więcej, wraz z POST, możesz przesłać dowolną treść, więc po prostu przekaż wszystkie potrzebne informacje po zakończeniu oczekiwania (takie jak wynik, komentarze itp.).

Kończenie zadania

  1. Approval
    1. Completed On – timestamp
    2. Modified On – timestamp
    3. Modified By – kto zakończył zadanie
    4. Result – string, wynik zadania
    5. Stage – Complete
    6. Status – Inactive
    7. Status Reason – Completed
  2. Flow Approval
    1. Brak zmian, jeśli flow nie czeka na zakończenie zadania, jeśli jednak czeka:
    2. Status – Inactive
    3. Status Reason – Completed
  3. Approval Request
    1. No changes
  4. Approval Response
    1. Approval Response – autogenerowany identifier
    2. Approval Id Index – identyfikator Approval wygenerowany w tabeli Approval
    3. Approval Stage – jak powyżej
    4. Comments – komentarz zapisany wraz z zakończonym zadaniem
    5. Created By – Microsoft Flow
    6. Created On – timestamp
    7. Modified By – Microsoft Flow
    8. Modified On – timestamp
    9. Owner – kto zakończył zadanie
    10. Response – wynik zadania
    11. Stage – Basic
    12. Stage Index – Basic
    13. Status – Inactive
    14. Status Reason – Committed

Przepisane zadania na innego zatwierdzającego

W tym scenariuszu jedyna zmiana, jaka ma miejsce, znajduje się w tabeli Approval Request:

  1. Oryginalne zadanie
    1. Status – Inactive
    2. Status Reason – Reassigned
  2. Nowy wpis
    1. Wszystkie informacje takie same jak w przypadku tworzenia nowego zadnia plus:
    2. Reassigned From – identyfikator oryginalnego zadania z tabeli Approval Request

Ważne! Podczas przepisywania zadań pamiętaj o przestrzeganiu zasad:
1. Użytkownicy nie mogą ponownie przydzielać zadań nieprzypisanych do siebie,
2. Użytkownicy nie mogą ponownie przypisać do siebie,
3. Użytkownicy nie mogą ponownie przypisać do twórcy zadania.

Anulowanie zadania

  1. Approval
    1. Result – Canceled
    2. Stage – Complete
    3. Status – Inactive
    4. Status Reason – Canceled
  2. Flow Approval
    1. Brak zmian, jeśli flow nie czeka na zakończenie zadania, jeśli jednak czeka:
    2. Status – Inactive
    3. Status Reason – Completed

I to wszystko. Mam nadzieję, że te informacje będą naprawdę przydatne podczas Twojej pracy z zadaniami poza podstawowym interfejsem użytkownika w Power Automate lub Microsoft Teams.


Tomasz Poszytek

Cześć! Nazywam się Tomasz. Jestem ekspertem w dziedzinie automatyzacji procesów i budowaniu rozwiązań dla biznesu z użyciem Power Platform. Jestem Microsoft MVP i Nintex vTE.

Brak komentarzy

Wyślij komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.